package com.ibiaoke.pay;

import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.ibiaoke.common.configs.AppAliPayConfigs;
import com.ibiaoke.common.utils.JsonUtils;
import org.apache.log4j.Logger;

public class BkPayRefunds {
//    public String alipayRefundRequest(String out_trade_no, String trade_no, double refund_amount) {

//        // 发送请求
//        String strResponse = null;
//        try {
//            AlipayClient alipayClient = new DefaultAlipayClient(
//                    AppAliPayConfigs.alipayurl,
//                    AppAliPayConfigs.appid,
//                    AppAliPayConfigs.private_key,
//                    AppAliPayConfigs.content_type,
//                    AppAliPayConfigs.input_charset,
//                    AppAliPayConfigs.ali_public_key);
//
//            AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();
//            AlipayRefundInfo alidata = new AlipayRefundInfo();
//
//            alidata.setOut_trade_no(out_trade_no);
//            alidata.setRefund_amount(refund_amount);
//            alidata.setTrade_no(trade_no);
//            request.setBizContent(JsonUtils.convertToString(alidata));
//
//            AlipayTradeRefundResponse response = alipayClient.execute(request);
//            strResponse = response.getCode();
//
//            if ("10000".equals(response.getCode())) {
//                strResponse = "退款成功";
//            } else {
//                strResponse = response.getSubMsg();
//            }
//        } catch (Exception e) {
//            Logger.getLogger(getClass()).error("alipayRefundRequest", e);
//        }
//        return strResponse;

//    }

//    public String wxPayRefundRequest(String transaction_id, String out_refund_no,
//                                     int total_fee, int refund_fee, String op_user_id) {
//        CloseableHttpClient httpclient = null;
//        CloseableHttpResponse response = null;
//        String strResponse = null;
//        try {
//            httpclient = ClientCustomSSL.getCloseableHttpClient();
//            // 构造HTTP请求
//            HttpPost httpPost = new HttpPost(Configure.PAY_REFUND_API);
//            // PayRefundReqData wxdata = new PayRefundReqData(
//            // "1004720096201602263541023415", "16371", 30, 30, "19417");
//            PayRefundReqData wxdata = new PayRefundReqData(transaction_id,
//                    out_refund_no, total_fee, refund_fee, op_user_id);
//            String requestStr = Util.ConvertObj2Xml(wxdata);
//            StringEntity se = new StringEntity(requestStr.toString());
//            httpPost.setEntity(se);
//            // 发送请求
//            response = httpclient.execute(httpPost);
//
//            HttpEntity entity = response.getEntity();
//            if (entity != null) {
//                SAXReader saxReader = new SAXReader();
//                Document document = saxReader.read(entity.getContent());
//                Element rootElt = document.getRootElement();
//                // 结果码
//                String returnCode = rootElt.elementText("return_code");
//                String resultCode = rootElt.elementText("result_code");
//                if ("SUCCESS".equals(returnCode)&&"SUCCESS".equals(resultCode)) {
//                    strResponse=returnCode;
//                }else {
//                    strResponse=rootElt.elementText("err_code_des");
//                }
//            }
//            EntityUtils.consume(entity);
//        } catch (Exception e) {
//            Logger.getLogger(getClass()).error("payRefundRequest", e);
//        } finally {
//            try {
//                response.close();
//                httpclient.close();
//            } catch (IOException e) {
//                // TODO Auto-generated catch block
//                Logger.getLogger(getClass()).error("payRefundRequest关闭异常:", e);
//            }
//        }
//        return strResponse;
//    }
}
